import sys
from PyQt5 import QtCore, QtGui
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import pyqtSlot

from view.Ui_loginWindow import Ui_LoginWindow
from main import MainWindow


# 管理员登陆的用户名与密码
# USERNAME = 'admin'
# PASSWORD = '123456'


# 读取文件中存储的用户名与密码
def readAdminInfo(filename="data/admin.txt"):
    with open(filename, 'r+', encoding='utf-8') as f:
        s = [i[:-1].split(',') for i in f.readlines()]  # 读取文件里的每行文本
        return s  # 返回所有读取到的用户名和密码


# 主界面类
class LoginWindow(QMainWindow, Ui_LoginWindow):  # 多重继承QMainWindow和Ui_MainWindow
    def __init__(self):
        super(LoginWindow, self).__init__()  # 先调用父类QMainWindow的初始化方法
        self.setupUi(self)  # 再调用setupUi方法
        self.setMinimumSize(400, 250)  # 界面大小

    @pyqtSlot()
    def on_loginBtn_clicked(self):
        username = self.usernameInput.text()  # 获取用户输入的用户名
        password = self.pwdInput.text()  # 获取用户输入的密码

        info_list = readAdminInfo()  # 读取文件中的用户名与密码
        for info in info_list:
            USERNAME = info[0]  # 逗号前是用户名
            PASSWORD = info[1]  # 逗号后是密码
            if username == USERNAME and password == PASSWORD:  # 对比用户名与密码
                QMessageBox.information(self, '提示信息', '登陆成功,点击按钮跳转到主页面!')
                self.toMainWindow()  # 打开主界面
                break
        else:
            QMessageBox.information(self, '提示信息', '登陆失败,请检查用户名或密码。')
            self.pwdInput.setText("")  # 清空密码输入框

    # 关闭当前界面, 打开主界面
    def toMainWindow(self):
        self.close()  # 关闭当前页面
        # 跳转到主界面
        self.mainWindow = MainWindow()
        self.mainWindow.show()

    @pyqtSlot()
    def on_exitBtn_clicked(self):
        self.close()  # 调用函数实现退出功能


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ui = LoginWindow()
    ui.show()
    sys.exit(app.exec_())
